﻿#include <stdio.h>
#include <math.h>
//打印名字和学号的函数
void PrintInfo(void);
//计算一个整数的阶乘
float ComputeFactorial(int IntInput);
//判断一个整数是不是质数
//返回值，1：是质数，0：不是质数
int IsPrime(int IntInput);
//打印1000以内的质数
void PrintPrimeNumbers();

//主函数
int main()
{
	PrintInfo();
	int aNum;
	printf("Please input a number\n");
	scanf("%d", &aNum);
	if (IsPrime(aNum) == 1)
	{
		printf("%d is a prime number\n", aNum);
	}
	else
	{
		printf("%d is not a prime number\n", aNum);
	}
	PrintPrimeNumbers();
	return 0;
}


//打印名字和学号的函数
void PrintInfo(void)
{
	printf("My Name is : %s\n", "ZHANG");
	printf("My Student ID is : %s\n", "22156558");
}
//计算一个整数的阶乘
float ComputeFactorial(int IntInput)
{
	float result;
	result = 1;
	while (IntInput > 1)
	{
		result = result * IntInput;
		IntInput--;
	}
	return result;
}
//判断一个整数是不是质数
//返回值，1：是质数，0：不是质数
int IsPrime(int IntInput)
{
	int result;
	result = 1;
	IntInput = abs(IntInput);
	int LoopNumber;
	LoopNumber = round(sqrt(IntInput)) + 1;
	for (int i = 2; i <= LoopNumber; i++)
	{
		if (IntInput % i == 0)
		{
			result = 0;
		}
	}
	return result;
}
//打印1000以内的质数
void PrintPrimeNumbers()
{
	int intPrimeNumbersCount = 0;
	for (int i = 1; i <= 1000; i++)
	{
		if (IsPrime(i) == 1)
		{
			printf("%d ", i);
			++intPrimeNumbersCount;
			if (intPrimeNumbersCount % 6 == 0)
			{
				printf("\n");
			}
		}		
	}
}
